COSTA: Design and Implementation of a Cost and Termination Analyzer for Java Bytecode
نویسندگان
چکیده
This paper describes the architecture of costa, an abstract interpretation based cost and termination analyzer for Java bytecode. The system receives as input a bytecode program, (a choice of) a resource of interest and tries to obtain an upper bound of the resource consumption of the program. costa provides several non-trivial notions of cost, as the consumption of the heap, the number of bytecode instructions executed and the number of calls to a specific method. Additionally, costa tries to prove termination of the bytecode program which implies the boundedness of any resource consumption. Having cost and termination together is interesting, as both analyses share most of the machinery to, respectively, infer cost upper bounds and to prove that the execution length is always finite (i.e., the program terminates). We report on experimental results which show that costa can deal with programs of realistic size and complexity, including programs which use Java libraries. To the best of our knowledge, this system provides for the first time evidence that resource usage analysis can be applied to a realistic object-oriented, bytecode programming language.
منابع مشابه
COSTA : A Cost and Termination Analyzer for Java Bytecode ( Tool Demo )
This paper describes costa, a cost and termination analyzer for Java bytecode. The system receives as input a bytecode program and a selection of a resources of interest, and tries to bound the resource consumption of the program with respect to such a cost model. costa provides several non-trivial notions of resource, as the consumption of the heap, the number of bytecode instructions executed...
متن کاملTermination and Cost Analysis with COSTA and its User Interfaces
costa is a static analyzer for Java bytecode which is able to infer cost and termination information for large classes of programs. The analyzer takes as input a program and a resource of interest, in the form of a cost model, and aims at obtaining an upper bound on the execution cost with respect to the resource and at proving program termination. The costa system has reached a considerable de...
متن کاملAspect-Oriented Design and Implementation of a Java Bytecode Analyzer Framework
We propose a new type of Java bytecode analyzer framework based on aspect-oriented design and programming. We also observe that aspect-oriented design and programming improve separation of concerns of many of the characteristics of the design, including extensibility, type safety, and execution efficiency of its design and implementation, when compared to existing analyzer frameworks based on o...
متن کاملUsing CLP Simplifications to Improve Java Bytecode Termination Analysis
In an earlier work, a termination analyzer for Java bytecode was developed that translates a Java bytecode program into a constraint logic program and then proves the termination of the latter. An efficiency bottleneck of the termination analyzer is the construction of a proof of termination for the generated constraint logic program, which is often very large in size. In this paper, a set of p...
متن کاملCost analysis of object-oriented bytecode programs
Cost analysis statically approximates the cost of programs in terms of their inputdata size. This paper presents, to the best of our knowledge, the first approach tothe automatic cost analysis of Object-Oriented bytecode programs. In languagessuch as Java and C#, analyzing bytecode has a much wider application areathan analyzing source code since the latter is often not availabl...
متن کامل